<template>
    <div id="manageQuestionView">
        <h2>题目管理</h2>
        <a-table :columns="columns" 
        :data="dataList"
        :pagination="{pageSize:searchParams.pageSize,
            current:searchParams.current,
            total,
            showTotal:true, 
            }"
        @page-change="onPageChange"
        >
        <template #optional="{ record }">
            <a-space>
              <a-button type="primary"  @click="doUpdate(record)">修改</a-button>
              <a-button status="danger" @click="doDelete(record)">删除</a-button>
            </a-space>
        </template>
        </a-table>
    </div>
</template>
  
<script setup lang="ts">
import message from '@arco-design/web-vue/es/message';
import { Question, QuestionControllerService } from '../../../generated';
import { onMounted, ref, watchEffect } from 'vue';
import { useRouter } from 'vue-router';
  
  const show = ref(true)

  const dataList=ref([]);
  const total=ref(0);
  const searchParams=ref({
     pageSize:9,
     current:1,
  });

  const loadData=async()=>{
    const res=await QuestionControllerService.listQuestionByPageUsingPost(searchParams.value);
    console.log(res.data);
    if(res.code === 0){
      dataList.value=res.data.records;
      total.value=res.data.total;
    }
  }

  const onPageChange=(page:number)=>{
     searchParams.value={
       ...searchParams.value,
       current:page,
     };   
  }

  watchEffect(()=>{
    loadData();
  })
  
  onMounted(()=>{
    loadData();
  });

  const columns = [{
    title: 'id',
    dataIndex: 'id',
  }, {
    title: '标题',
    dataIndex: 'title',
  }, {
    title: '内容',
    dataIndex: 'content',
  }, {
    title: '标签',
    dataIndex: 'tags',
  }, {
    title: '答案',
    dataIndex: 'answer',
  }, {
    title: '提交数',
    dataIndex: 'submitNum',
  },{
    title: '通过数',
    dataIndex: 'acceptedNum',
  }, {
    title: '判题配置',
    dataIndex: 'judgeConfig',
  },{
    title: '判题用例',
    dataIndex: 'judgeCase',
  },
  {
    title: '用户id',
    dataIndex: 'userId',
  },{
    title: '创建时间',
    dataIndex: 'createTime',
  },{
      title: '操作',
      slotName: 'optional'
  }
];

const doDelete = async(question:Question)=>{
   const res = await QuestionControllerService.deleteQuestionUsingPost({id:question.id});
   if(res.code === 0){
     message.success("删除成功");
     loadData();
   }else{
    message.error("删除失败");
   }
}

const router = useRouter();
const doUpdate = (question:Question)=>{
    router.push({
        path:"/update/question",
        query:{
            id:question.id,
        },
     });
}

</script>

<style scoped>
#manageQuestionView {
 max-width:1540px;
 margin: 0 auto;
}
</style>